A business information enterprise system may improve an organization's ability to monitor and/or manage data in a complex business environment. For example, such a system might store a large amount of business information, such as a yearly global sales plan and profit data on both a company-wide and regional basis. Different users may then access the information in different ways. For example, a business analyst might be interested in a normalized comparison of each year's sales plan figures as compared to other years. A human resources administrator might instead want to access a list of employee names located in a particular country. In general, many different types of data could be stored by, and accessed from, a business information enterprise system (e.g., inventory data, sales data, and/or accounting data) and different types of data can often be used in different ways.
In some cases, business information is accessed through a business enterprise application such as a Web-based “portal” that can display information to, and interact with, users. For example, a user might view business reports and/or select a particular item within a report to obtain further information about that item. Note that a user (or group of users) might want to customize the way in which information is displayed and/or interacted with via the portal.
To help a designer create design a portal that suits a particular domain (e.g., a particular business area or application), a visual design tool may have a pre-defined set of portal elements, such as portal templates and objects. The designer can then arrange and further define the portal elements as required. Note that some or all of these portal elements may be associated with business logic. For example, a particular type of portal element might be permitted in certain display areas (e.g., a human resources area within a portal page) while another type of portal element is not permitted in those areas.
Typically, a visual design tool is customized to help designer create portal models for a particular domain. For example, a first visual design tool might be customized specifically to be used by designers associated a first business while another visual design tool is customized to be used by designers associated with a second business. Such an approach, however, can be time consuming costly in terms of the development of customized visual design tools for different domains. Moreover, the approach may not be scalable (e.g., because a simple change to one model element can result in a complex change to a large number of previously customized visual design tools).
To avoid such problems, Object Constraint Language (OCL) definitions might be used to describe some of the elements used by a visual design tool. OCL definitions use a declarative text-based language to describe behaviors that apply to universal modeling language models, such as constraint and object query expressions that are not otherwise expressed by diagram notation. While OCL definitions can be helpful for certain batch activities, such as model validation or transformation, it requires a complex constraint solving system for the evaluation and satisfaction of expressed definitions. As a result, it may be inappropriate for interactive activities (such as model editing) that involve real-time responsiveness. When a designer is dragging and dropping a model element, for example, OCL definitions might need to be evaluated hundreds of times per second (e.g., to determine whether or not the model element is currently over an appropriate location on the display). Moreover, it may not be practical to describe context-based behavior using OCL definitions.
Approaches that may improve a designer's ability to create business information portals could, therefore, be desirable. Moreover, it may advantageous to provide one or more tools that facilitate a designer's ability to do so in an efficient, timely, and convenient manner.